using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.IO;
using CrystalDecisions.CrystalReports;
using System.Data.SqlClient;
public partial class ReporteOrdenesDevolucion : System.Web.UI.Page
{
    ReportDocument reportDoc = new ReportDocument();
    protected void Page_Load(object sender, EventArgs e)
    {
        mostrarReporte();
    }
    protected void ib_cancelar_Click(object sender, ImageClickEventArgs e)
    {
        tb_empresa.Text = string.Empty;
        tb_motivo.Text = string.Empty;
        tb_nroFactura.Text = string.Empty;
        mostrarReporte();
    }
    
    protected void ib_reporte_Click(object sender, ImageClickEventArgs e)
    {
        mostrarReporte();
    }
    protected void mostrarReporte()
    {
        try
        {
            String cadena = (String)ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlConnection conexion = new SqlConnection(cadena);
            string consulta = "";
            string concatena = "";
            SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
            int num = 0;
            if (tb_empresa.Text != string.Empty)
            {
                if (num == 0)
                {
                    consulta = "SELECT Ordenes_Devolucion.cod_orden_devolucion_compra, Ordenes_Devolucion.fecha, Ordenes_Devolucion.monto_total, Detalles_Ordenes_Devolucion.cantidad, Detalles_Ordenes_Devolucion.nro_renglon, Detalles_Ordenes_Devolucion.importe, Facturas_Compras.nro_factura_compra, Facturas_Compras.fecha AS Fecha_Factura, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Motivos.descripcion AS Motivo, Motivos.tipo_movimiento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Personas.nombres, Personas.apellidos, Proveedores.nro_documento FROM  Ordenes_Devolucion   JOIN  Detalles_Ordenes_Devolucion ON Ordenes_Devolucion.cod_orden_devolucion_compra = Detalles_Ordenes_Devolucion.cod_orden_devolucion_compra   JOIN Facturas_Compras ON Ordenes_Devolucion.cod_factura_compra = Facturas_Compras.cod_factura_compra   JOIN  Productos ON Detalles_Ordenes_Devolucion.cod_producto = Productos.cod_producto   JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca   JOIN  Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo   JOIN   Motivos ON Detalles_Ordenes_Devolucion.cod_motivo = Motivos.cod_motivo   JOIN  Proveedores ON Ordenes_Devolucion.cod_proveedor = Proveedores.cod_proveedor   JOIN  Personas ON Proveedores.nro_documento = Personas.nro_documento " +
                        "WHERE Proveedores.nombre_empresa like '" + tb_empresa.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = " AND Proveedores.nombre_empresa like '" + tb_empresa.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                    num++;
                }
            }
            if (tb_motivo.Text != string.Empty)
            {
                if (num == 0)
                {
                    consulta = "SELECT Ordenes_Devolucion.cod_orden_devolucion_compra, Ordenes_Devolucion.fecha, Ordenes_Devolucion.monto_total, Detalles_Ordenes_Devolucion.cantidad, Detalles_Ordenes_Devolucion.nro_renglon, Detalles_Ordenes_Devolucion.importe, Facturas_Compras.nro_factura_compra, Facturas_Compras.fecha AS Fecha_Factura, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Motivos.descripcion AS Motivo, Motivos.tipo_movimiento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Personas.nombres, Personas.apellidos, Proveedores.nro_documento FROM  Ordenes_Devolucion   JOIN  Detalles_Ordenes_Devolucion ON Ordenes_Devolucion.cod_orden_devolucion_compra = Detalles_Ordenes_Devolucion.cod_orden_devolucion_compra   JOIN Facturas_Compras ON Ordenes_Devolucion.cod_factura_compra = Facturas_Compras.cod_factura_compra   JOIN  Productos ON Detalles_Ordenes_Devolucion.cod_producto = Productos.cod_producto   JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca   JOIN  Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo   JOIN   Motivos ON Detalles_Ordenes_Devolucion.cod_motivo = Motivos.cod_motivo   JOIN  Proveedores ON Ordenes_Devolucion.cod_proveedor = Proveedores.cod_proveedor   JOIN  Personas ON Proveedores.nro_documento = Personas.nro_documento " +
                        "WHERE Motivos.descripcion like '" + tb_motivo.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = " AND Motivos.descripcion like '" + tb_motivo.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                    num++;
                }
            }
            if (tb_nroFactura.Text != string.Empty)
            {
                if (num == 0)
                {
                    consulta = "SELECT Ordenes_Devolucion.cod_orden_devolucion_compra, Ordenes_Devolucion.fecha, Ordenes_Devolucion.monto_total, Detalles_Ordenes_Devolucion.cantidad, Detalles_Ordenes_Devolucion.nro_renglon, Detalles_Ordenes_Devolucion.importe, Facturas_Compras.nro_factura_compra, Facturas_Compras.fecha AS Fecha_Factura, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Motivos.descripcion AS Motivo, Motivos.tipo_movimiento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Personas.nombres, Personas.apellidos, Proveedores.nro_documento FROM  Ordenes_Devolucion   JOIN  Detalles_Ordenes_Devolucion ON Ordenes_Devolucion.cod_orden_devolucion_compra = Detalles_Ordenes_Devolucion.cod_orden_devolucion_compra   JOIN Facturas_Compras ON Ordenes_Devolucion.cod_factura_compra = Facturas_Compras.cod_factura_compra   JOIN  Productos ON Detalles_Ordenes_Devolucion.cod_producto = Productos.cod_producto   JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca   JOIN  Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo   JOIN   Motivos ON Detalles_Ordenes_Devolucion.cod_motivo = Motivos.cod_motivo   JOIN  Proveedores ON Ordenes_Devolucion.cod_proveedor = Proveedores.cod_proveedor   JOIN  Personas ON Proveedores.nro_documento = Personas.nro_documento " +
                        "WHERE Facturas_Compras.nro_factura_compra like '" + tb_nroFactura.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = " AND Facturas_Compras.nro_factura_compra like '" + tb_nroFactura.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                    num++;
                }
            }
            if (tb_empresa.Text.Equals("") && tb_motivo.Text.Equals("") && tb_nroFactura.Text.Equals(""))
            {
                consulta = "SELECT Ordenes_Devolucion.cod_orden_devolucion_compra, Ordenes_Devolucion.fecha, Ordenes_Devolucion.monto_total, Detalles_Ordenes_Devolucion.cantidad, Detalles_Ordenes_Devolucion.nro_renglon, Detalles_Ordenes_Devolucion.importe, Facturas_Compras.nro_factura_compra, Facturas_Compras.fecha AS Fecha_Factura, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Motivos.descripcion AS Motivo, Motivos.tipo_movimiento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Personas.nombres, Personas.apellidos, Proveedores.nro_documento FROM  Ordenes_Devolucion   JOIN  Detalles_Ordenes_Devolucion ON Ordenes_Devolucion.cod_orden_devolucion_compra = Detalles_Ordenes_Devolucion.cod_orden_devolucion_compra   JOIN Facturas_Compras ON Ordenes_Devolucion.cod_factura_compra = Facturas_Compras.cod_factura_compra   JOIN  Productos ON Detalles_Ordenes_Devolucion.cod_producto = Productos.cod_producto   JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca   JOIN  Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo   JOIN   Motivos ON Detalles_Ordenes_Devolucion.cod_motivo = Motivos.cod_motivo   JOIN  Proveedores ON Ordenes_Devolucion.cod_proveedor = Proveedores.cod_proveedor   JOIN  Personas ON Proveedores.nro_documento = Personas.nro_documento ";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
            }
            DataSet DataSet_OrdenDevolucion = new DataSet();
            da.Fill(DataSet_OrdenDevolucion, "OrdenDevolucion");
            reportDoc.Load(Server.MapPath("~/Reportes/ReporteOrdenDevolucion.rpt"));
            reportDoc.SetDataSource(DataSet_OrdenDevolucion.Tables["OrdenDevolucion"]);
            Reporte_Orden_Devolucion.ReportSource = reportDoc;
            Reporte_Orden_Devolucion.RefreshReport();
        }
        catch (Exception error)
        {
        }
    }
}
